Le widget Entry permet de taper du texte et de l'afficher sur une seule ligne. Un grand nombre de choses peuvent être faites par défaut comme insérer ou remplacer du texte, …
On crée un nouveau widget Entry avec la fonction:
Pour remplacer ou récupérer le texte en cours d'édition dans le widget Entry:
Si on veut empêcher que le contenu de Entry soit modifié par l'utilisateur, on change son état "éditable". On peut aussi définir: la "visibilité" (pour les mots de passe), le nombre maximum de caractères (0 si illimité), si la zone a un cadre ou non, l'espace à laisser et d'autres attributs. L'autoremplissage du texte est également possible (Voir la documentation de EntryCompletion dans l'API pour son utilisation). Les attributs de Entry qui peuvent évidemment être accessibles avec get et set sont:
Le type Entry est une instance de EditableClass et certains attributs et méthodes sont définis ici. Les plus utiles sont:
Les arguments de type Int indiquent la position de départ ou de fin. L'utilisateur peut aussi copier, coller et couper depuis et vers le presse-papier.
Elles prennent toutes la position courante du curseur. Vous pouvez obtenir et définir cette position avec:
Le curseur est affiché avant le caractère indexé (début à 0) dans le widget. La valeur doit être inférieure ou égale au nombre de caractères dans le widget. Une valeur de -1 indique que la position doit être définie après le dernier caractère de la zone de saisie.
La classe Editable a un certain nombre de signaux qui utilisent des fonctions de haut niveau (que nous n'aborderons pas ici). Le widget Entry lui-même a un signal qui est envoyé après que l'utilisateur ait appuyé sur la touche Enter:
Il y a aussi des signaux envoyés quand le texte est copié, coupé, collé vers le presse-papier et quand l'utilisateur bascule entre le mode insertion et remplacement.
Les barres d'état sont de simples widgets utilisés pour afficher un message. Elles gardent une liste des messages qui leur sont envoyés de telle sorte que afficher le message courant ré-affichera le précédent message texte. Une barre d'état possède une poignée de redimensionnement par défaut de sorte que l'utilisateur peut la redimensionner.
Afin de permettre aux différents composants d'une application d'utiliser la même barre d'état pour afficher les messages, le widget barre d'état utilise les ContextId qui sont utilisés pour identifier les différents "utilisateurs". Le message au-dessus de la pile est celui qui est affiché quel que soit le contexte qui l'utilise. Les messages sont empilés suivant un processus dernier-entré, premier sorti. Une barre d'état se crée avec:
Un nouveau ContextId est généré avec la fonction suivante avec une chaîne de caractères String utilisée comme description du contexte:
Il y a trois fonctions qui permettent d'intervenir sur les barres d'état.
La première, statusbarPush, est utilisée pour ajouter un nouveau message à la barre d'état. Elle retourne un MessageId qui peut par la suite être passé à statusbarRemove pour supprimer le message avec le ContextId et le MessageId de la pile de la barre d'état. La fonction statusbarPop enlève le message au-dessus de la pile avec l'identifiant de contexte donné.
Les barres d'état, comme les barres de progression sont utilisées pour afficher des messages à l'utilisateur sur les opérations en cours. Dans l'exemple qui suit, nous allons simuler une telle opération en testant si le texte que l'utilisateur soumet (en pressant la touche Enter) est le même que son inverse, et en renvoyant le résultat dans la pile. L'utilisateur peut voir les résultats en appuyant sur le bouton information qui affiche alors les messages de la pile. La première fois, la pile est vide et le bouton est grisé avec: